In computer file systems, files are used to store data created by users, software applications, and devices. In addition to user-created content, a computer file may be associated with descriptive information regarding the contents or other aspects of the file. This descriptive information is referred to as metadata. In some instances, metadata is stored in the file. In other instances, metadata is stored outside of the file but is linked to the file.
Some application programs allow users to manually create and associate metadata with a file. For example, digital image organization programs sold with digital cameras may allow a user to manually enter captions to be stored and/or displayed with an image. While such manual metadata creation tools are useful, they require unnecessary time and labor on the part of the end user, because the end user is required to manually input the metadata for each resource.
Some current computer operating systems include limited functionality for automatically associating file system information with files. For example, the Windows® 98 and Windows® 2000 operating systems automatically associate a file's location in a file directory tree with the file in response to the file being stored in a particular directory. However, the Windows® 98 and Windows® 2000 operating systems do not allow a user to define his or her own metadata that is automatically associated with the file. In addition, the Windows® 98 and Windows® 2000 operating systems do not allow metadata to be selectively associated with a file based on a characteristic of the file. For example, it may be desirable to automatically associate different metadata with image files and documents stored in the same folder. Windows® 98 and Windows® 2000 would treat all files stored in the folder identically by associating the folder's location in the directory tree with a location tag in each file.
Newer operating systems include file systems that are more database-oriented than previous operating systems. For example, the Longhorn operating system expected to be released by Microsoft in 2006 includes an unstructured file system and a structured file system. The unstructured file system is the same NTFS file system included in Windows® 98 and Windows® 2000. The structured file system is a database-oriented file system in which file properties are stored and organized as structured database objects. When an application modifies unstructured properties of a file, structured database objects corresponding to the unstructured properties are updated. The process of updating the structured database objects is referred to as promotion. However, the promotion process only maps existing unstructured properties of the file to structured objects maintained by the structured file system. There is no ability in the promotion process to automatically associate data that is independent from a file with the structured objects or to selectively associate data with a file as metadata based on a file characteristic.
It may be desirable to allow users to define data and automatically associate, as metadata, the data with a resource, such as a file. In addition, it may be desirable to allow users to define rules that associate data with resources as metadata based on characteristics of the resources. Such capability would allow the user to organize files or other resources in an efficient manner. Because current file systems lack such capabilities, there exists a need for improved methods, systems, and computer program products for automatically associating data with a resource as metadata based on a characteristic of the resource.